package com.wondream.myframework.thread;

import java.util.concurrent.*;

/**
 * 第四种创建线程的方式-使用调度任务线程池Executors.newScheduledThreadPool
 * schedule
 * scheduleAtFixedRate
 * scheduleWithFixedDelay
 */
public class ThreadTest8 {
    public static void main(String[] args) throws Exception {
        // 1.定义调度任务线程池
        ScheduledExecutorService scheduled = Executors.newScheduledThreadPool(5);
        // 2.延迟1s执行
        scheduled.schedule(()->{
            System.out.println("延迟1s执行");
        }, 1, TimeUnit.SECONDS);
        // 3.首次延迟1s执行；固定间隔1s执行
        scheduled.scheduleAtFixedRate(()->{
            System.out.println("首次延迟1s执行；固定间隔1s执行");
        }, 1, 1, TimeUnit.SECONDS);
        // 4.首次延迟1s执行；上次任务结束后，等1s执行下一次任务
        scheduled.scheduleWithFixedDelay(()->{
            System.out.println("首次延迟1s执行；上次任务结束后，等1s执行下一次任务");
        }, 1, 1, TimeUnit.SECONDS);
    }

}
